package interfazeak;

import interfazeak.Mahastiak_Lekuak;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;

import db.BarietateaKud;
import db.DBKudeatzailea;
import db.LekuaKud;

import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.Color;
import javax.swing.UIManager;
import java.awt.Font;
import javax.swing.SwingConstants;

import laguntzaileak.Aukeratutakoak;

public class Gehitu extends JDialog {

	private final JPanel contentPanel = new JPanel();
	private Mahastiak_Lekuak guraso;
	private JTextField herria_txtfield;
	private JTextField izena_txtfield;
	private JButton gorde;
	private Aukeratutakoak aukeratuta;
	private Vector<JCheckBox> barietatecheck;
	private JCheckBox check;
	private Vector<String> gehitutakoa;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		try {
			final Boolean MODALA = true;
			Gehitu dialog = new Gehitu(new Mahastiak_Lekuak(), MODALA);
			dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialog.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Create the dialog.
	 * 
	 * @param mODALA
	 * @param mahastiak_Lekuak
	 */
	public Gehitu(Mahastiak_Lekuak guraso, Boolean mODALA) {
		this.guraso = guraso;
		aukeratuta = new Aukeratutakoak(null, null, new Vector<JCheckBox>());
		gehitutakoa = new Vector<String>();

		setBounds(200, 150, 500, 400);
		setTitle("LEKUA GEHITU");
		getContentPane().setLayout(new BorderLayout());
		contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(contentPanel, BorderLayout.CENTER);
		contentPanel.setLayout(null);

		JLabel lblherria = new JLabel("Herria");
		lblherria.setBounds(30, 40, 70, 15);
		contentPanel.add(lblherria);

		JLabel lblizena = new JLabel("Izena");
		lblizena.setBounds(30, 80, 70, 15);
		contentPanel.add(lblizena);

		herria_txtfield = new JTextField();
		herria_txtfield.setBounds(110, 40, 114, 19);
		contentPanel.add(herria_txtfield);
		herria_txtfield.setColumns(10);

		izena_txtfield = new JTextField();
		izena_txtfield.setBounds(110, 80, 114, 19);
		contentPanel.add(izena_txtfield);
		izena_txtfield.setColumns(10);

		gorde = new JButton("GORDE");
		gorde.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				String herria = herria_txtfield.getText();
				String izena= izena_txtfield.getText();
				aukeratuta.setHerria(herria);
				aukeratuta.setIzena(izena);
				boolean badago = Gehitu.this.konprobatuIzenakBadaude(herria,izena);
				if (aukeratuta.getHerria().equals("") && aukeratuta.getIzena().equals("") && aukeratuta.getBarietatecheck().size()==0){
					JOptionPane.showMessageDialog(Gehitu.this,
							"Eremu guztiak bete", "KONTUZ",
							JOptionPane.WARNING_MESSAGE);
			
				}
				else if (aukeratuta.getHerria().equals("")) {
					JOptionPane.showMessageDialog(Gehitu.this,
							"Herriaren izena sartu", "KONTUZ",
							JOptionPane.WARNING_MESSAGE);
				} 
				else if (aukeratuta.getIzena().equals("")) {
					JOptionPane.showMessageDialog(Gehitu.this,
							"Partzelaren ziena bete", "KONTUZ",
							JOptionPane.WARNING_MESSAGE);
				} 
				else if (aukeratuta.getBarietatecheck().size()==0){
					JOptionPane.showMessageDialog(Gehitu.this,
							"Barietateak aukeratu", "KONTUZ",
							JOptionPane.WARNING_MESSAGE);
				}
				else if (badago==false) {
					JOptionPane.showMessageDialog(Gehitu.this,
							"Partzela hori gordeta dago", "KONTUZ",
							JOptionPane.WARNING_MESSAGE);
				}
				else {
					int konfirmatu = JOptionPane.showConfirmDialog(Gehitu.this,
							"Gorde nahi duzu?");
					if (JOptionPane.OK_OPTION == konfirmatu) {
					
						Gehitu.this.guraso.aukeratutakoak(aukeratuta);
						Gehitu.this.guraso.sartubd(aukeratuta);
						Gehitu.this.guraso.ezabatutaula();
						Gehitu.this.guraso.bistaratu();

						Gehitu.this.dispose();
					} else if (JOptionPane.NO_OPTION == konfirmatu) {
						Gehitu.this.dispose();
					}
				}

			}
		});
		gorde.setBounds(32, 217, 117, 25);
		contentPanel.add(gorde);
		betecheck();
	}

	

	protected boolean konprobatuIzenakBadaude(String herria, String izena) {
				
		int emaitza = LekuaKud.izenaEtaHerriaKonprobatu(herria,izena);
		if (emaitza==0){
			return true;
		}
		else {
			return false;
		}
	}

	protected void betecheck() {

		ResultSet rs = BarietateaKud.betecheck();
		int x = 300, y = 40, h = 180, w = 23;
		try {

			while (rs.next()) {
				int i = 0;
				String barietatea = rs.getString(1);
				check = new JCheckBox(barietatea);
				check.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {

						// ze barietetatean egin dute klik?
						JCheckBox zebarietate = (JCheckBox) e.getSource();

						aukeratuta.getBarietatecheck().add(zebarietate);

					}
				});
				check.setBounds(x, y, h, w);
				// check.setActionCommand(barietatea);
				contentPanel.add(check);

				y = y + 70;
				i = i + 1;

			}
		}

		catch (SQLException e) {

			e.printStackTrace();
		}

	}
}
